/**
 *
 */
package com.wedroid.r2d2.contact;

import java.util.List;
import java.util.Map;

/**
 * @author lute
 */
public interface ContactStore {

    /**
     * @param contact
     */
    public void storeFriend(Contact contact);

    /**
     * @param official
     */
    public void storeOfficial(Contact official);

    /**
     * @param group
     */
    public void storeGroup(Contact group);

    /**
     * @param special
     */
    public void storeSpecial(Contact special);

    /**
     * @param groupName
     * @param contact
     */
    public void storeGroupMember(String groupName, Contact contact);

    /**
     * @param username
     * @return
     */
    public Contact getContact(String username);

    /**
     * @param groupName
     * @param username
     * @return
     */
    public Contact getGroupMember(String groupName, String username);

    /**
     * @return
     */
    public List<Contact> getAllGroups();

    /**
     * @return
     */
    public Map<String, List<Contact>> getAllGroupMembers();

}
